An Application Program Interface (API) is a programming language format used by an application program to communicate with an operating system or other control programs such as a database management system (DBMS) or communications protocol. An API typically includes a library of components such as routines, protocols and tools for building software applications. The components may be software functions and processes such as executable code or scripts. In the case of “Web APIs”, the APIs may be exposed over a network such as in a web page or desktop application that access API over the Internet. Most operating environments such as Windows, Unix, Linux, or like systems provide API components so that developers can run and execute applications consistent with the operating environment.
APIs allow developers to create application software (i.e. “apps”) which can communicate directly with a particular operating system or computer platform by integrating functions from the operation system's API library into the application software. The term app can refer to mobile applications that utilize APIs. Developers may implement apps in various programming languages using various platforms. Therefore, APIs enable app developers to easily access and reuse application logic built by other developers.
More recently, developers may use a software development kit (SDK or devkit) to build applications and APIs for operating systems and/or platforms. An API platform may be a type of application that runs on a SDK acting as a means for communication between servers and one or more web APIs, generic HTTP services, or applications. Such an API platform application can be implemented as a set of configuration files and software code which rely on resources provided by the SDK.
In addition, web based APIs may be provided to developers in order to integrate services between two or more HTTP enabled services. These combined services may be referred to as a “mashup.” For example, Housingmaps.com is a mashup that applies real estate information, such as apartments for rent or homes for sale from craigslist.com to Google Maps. The mashup results in a system that allows the user to sort apartments and homes by price and location onto an interactive map, allowing for efficient browsing of housing options.
A web service may be a type of API or software system which involves communication over a network. A web service may operate over HTTP or alternate transports such as SMTP. When running integrated web services in an API ecosystem, a Representational State Transfer (REST) is a commonly used architecture. In REST architecture, application functionality is divided into resources. A resource is an object with a type, associated data, relationships to other resources, and a set of methods that operate on it, where the resource is identified by a Uniform Resource Identifier (URI). Interactions with REST resources may include specifying the resource with a Uniform Resource Locator (URL) path, passing the resource one or more parameters, and issuing standard operations on the resource including POST, PUT, DELETE, and GET for adding, modifying, deleting and retrieving a resource, respectively in a Hypertext Transfer Protocol (HTTP) channel.
In REST and other interfaces for interfacing between web application services, delivering targeted content to a client based on client's request is time consuming and substantially costly due to the API platform needing potential traversal of an entire database of API groups or categories in order to fetch requisite information pertaining to each API developer request. Thus, there is a need for an API ecosystem that reduces the complexity of searching a database of API information in order to classify an API request. It is therefore desirable to offer a system and method to obtain information pertaining to an API request in a manner that provides improved efficiency in classification of API requests over traditional implementations.